Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Programación segura (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

Security Manager

• Identity – Bases para las decisiones de seguridad
• Origin – Desde donde proviene el código
• Signature – A qué código corresponde?
java.security.CodeSource
• Permission – Encapsula el acceso a una operación particular
• Incluye un objetivo y una acción
p = new SocketPermission(“www.utp.edu.co”, “connect”);
p = new FilePermission(“/tmp/file1”, “*”);

Monografias.com

Arquitectura criptográfica
Desde el punto de vista de la seguridad, el conjunto de clases de seguridad distribuidas con el Java 2 SDK pueden dividirse en dos subconjuntos:

Clases relacionadas con el control de acceso y la gestión de permisos.

Clases relacionadas con la Criptografía.

Seguridad en Java
Arquitectura Criptográfica de Java (JCA) y la Extension Criptográfica de Java (JCE).

Monografias.com

Seguridad en Java
Certification Path
Java Authentication and Authorization Service (JAAS)
Java Generic Security Services (Java GSS-API)
Java Cryptography Extension (JCE)
Java Secure Socket Extension (JSSE)
Simple Authentication and Security Layer (SASL)

Monografias.com

Arquitectura de la Criptografía
Java Cryptography Architecture (JCA)
Introducción
JDK 1.1
Resúmenes de mensajes
Firmas digitales
Java 2 SDK
resúmenes de mensajes
X.509
Arquitectura para grano fino, flexible, extensible y control de acceso altamente configurable.

Monografias.com

Arquitectura de la Criptografía
Proveedores de servicios criptográficos
Firma digital (DSA)
MD5 y SHA-1
Generador de Claves DSA
Certificados X.509
KeyStore

Monografias.com

JCE
Java Cryptography Extension (JCE)
Introducción
Marco de trabajo y de implementación para el cifrado.
Generación y comprobación de claves
Algoritmos de autenticación de mensajes (MAC)

Monografias.com

JCE
Introducción
Ayuda para el cifrado simétrico
Ayuda para el cifrado asimétrico
Ayuda para el cifrado en bloque
Cifradores en flujo
Flujos seguros
Objetos sellados

Monografias.com

JCE
API JCE
Cifrado simétrico en bloque DES, RC2 e IDEA
Cifrado simétrico en flujo RC4
Encriptación asimétrica RSA
Comprobación de claves

Monografias.com

JCE
API JCE
Cifrado Password-Based(PBE)
Algoritmo de autentificación de claves (MAC)
Proveedor de Servicios SunJCE
Una implementación del DES (FIPS PUB 46-1), Triple DES, y algoritmos de encriptación Blowfish en el Electronic Code Book (ECB), Cipher Block Chaining (CBC), Cipher Feedback (CFB), Output Feedback (OFB), y modos Propagating Cipher Block Chaining (PCBC).
Un generador de par de claves Diffie-Hellman para generar un par de valores públicos y privados convenientes para el algoritmo de Diffie-Hellman.

Monografias.com

JCE
Proveedor de Servicios SunJCE
Una implementación de HMAC-MD5 y algoritmos keyed-hashing HMAC-SHA1 definido en RFC 2104.
Una implementación del esquema de relleno descrito en PKCS #5.
Una implementación del keystore para el tipo propietario del keystore llamando "JCEKS".

Monografias.com

Ejemplos
HMAC-MD5
import java.security.*;import javax.crypto.*;public class initMac { public static void main(String[] args) throws Exception { KeyGenerator kg = KeyGenerator.getInstance("HmacMD5"); SecretKey sk = kg.generateKey(); Mac mac = Mac.getInstance("HmacMD5"); mac.init(sk); byte[] result = mac.doFinal("Hi There".getBytes()); }}

Monografias.com

Seguridad en Java
Control de acceso – Granularidad
Tools (jar, keytool, jarsigner, policytool)
Modelo de Permisos
Java.security.permission

Políticas de Seguridad
PolicyTool
Gestor de Seguridad: java.security.manager

Monografias.com

(Gp:) Clase JCA 1.2
(Gp:) Función
(Gp:) java.security.MessageDigest
(Gp:) Genera resumen de mensajes (hash).
(Gp:) java.security.Signature
(Gp:) Firmado de datos y verificación firmas.
(Gp:) java.security.KeyPairGenerator
(Gp:) Generar pares de claves (pública y privada) para un algoritmo.
(Gp:) java.security.KeyFactory
(Gp:) Convertir claves de formato criptográfico a especificaciones de claves y vice versa
(Gp:) java.security.certificate.CertificateFactory
(Gp:) Crear certificados de clave pública y listas de revocación(CRLs).
(Gp:) java.security.KeyStore
(Gp:) Crear y gestionar un almacen de claves (keystore).
(Gp:) java.security.AlgorithmParameters
(Gp:) Gestionar los parámetros de un algoritmo, incluyendocodificación y descodificación.
(Gp:) java.security.AlgorithmParameterGenerator
(Gp:) Generar un conjunto de parámetros para un algoritmo.
(Gp:) java.security.SecureRandom
(Gp:) Generar números aleatrorios o pseudo aleatrorios

Motor JCA

Monografias.com

(Gp:) Clase JCE 1.2
(Gp:) Función
(Gp:) java.crypto.Cipher
(Gp:) Proporciona encriptación y desencriptación.
(Gp:) java.crypto.KeyAgreement
(Gp:) Proporciona un protocolo de intercambio de claves.
(Gp:) java.crypto.KeyGenerator
(Gp:) Proporciona un generador de claves simétricas.
(Gp:) java.crypto.Mac
(Gp:) Proporciona un algoritmo de autentificación de mensajes.
(Gp:) java.crypto.SecretKeyFactory
(Gp:) Representa una factoría de claves secretas.

Motor JCE

Monografias.com

Seguridad en Java
JCA & JCE (Java Crypto Architecture, Java Crypto Extensions)
Javax.crypto.interfaces
DHKey
DHPrivateKey
DHPublicKey
Sockets Seguros (JSSE)

Java.security.Cert
X509Certificate, X509CRL
X509Extension

Monografias.com

El paquete java.security

El paquete java.security consiste básicamente en clases abstractas e interfaces que encapsulan conceptos de seguridad como certificados, claves, resumenes de mensajes y firmas digitales.

En el JCA los proveedores pueden implementar tres clases:
KeyPairGenerator. Se emplea para crear claves públicas y privadas.
MessageDigest. Prorciona la funcionalidad de algoritmos de resumen de mensajes como el MD5 y el SHA.
Signature. Se emplea para el firmado digital de mensajes.

KeyPairGenerator kpg = KeyPairGenerator.getInstance ("DSA");
Seguridad en Java

Monografias.com

El paquete java.security.cert

Añade soporte para generar y usar certificados, incluye clases e interfaces específicas para soportar certificados X.509.

CertificateFactory. Se emplea para generar certificados y listas de revocación (CRL).
Certificate. Es una clase para agrupar certificados de diferentes formatos pero usos comunes importantes
CRL. Clase abstracta para gestionar distintos tipos de listas de revocación de certificados.
X509Certificate. Clase abstracta para representar certificados X.509.
X509CRL. Clase abstracta para una lista de revocación de certificados X.509.
X509CRLEntry. Es una clase abstracta para las entradas de las listas de revocación

Seguridad en Java

Monografias.com

Seguridad en Java
Ejemplos:
Perm = new java.io.FilePermission(“/tmp/abc”,”read”) //AWT Permission, NetPermission
MessageDigest m = MessageDiggest.getInstance(“MD5”)
Java.security.MessageDiggest
Java.security.signature
Java.security.KeyPairGenerator

Monografias.com

Extensión de Sockets Seguros de Java (JSSE)
http://java.sun.com/products/jsse/
Servicio de Autentificación y Autorización de Java (JAAS)
http://java.sun.com/products/jaas/

Seguridad en Java

Monografias.com

Arquitectura de seguridad de .NET

Monografias.com

Arquitectura de seguridad de ASP.NET

Monografias.com

Configurar la Seguridad en .NET

Monografias.com

ACCESO SEGURO A DATOS EN .NET
Acceso a BD de datos mediante ADO.NET
Formas seguras de acceder a la BD
Almacenamiento seguro de secretos
AUTENTICACIÓN MEDIANTE FORMULARIOS EN .NET
Autenticación mediante formularios básica
Autenticación mediante formularios y XML
Autenticación mediante formularios y base de datos
Autenticación mediante formularios y tickets personalizados
Autenticación mediante formularios sin cookies
AUTENTICACIÓN MEDIANTE WINDOWS EN .NET
Autenticación básica
Autenticación mediante resúmenes
Autenticación integrada de Windows
Protección de directorios y documentos
Representación de usuario
AUTENTICACIÓN MEDIANTE CERTIFICADOS EN .NET
Introducción a los certificados digitales
Criptografía con .NET
Autoridades de certificación
Canales seguros con SSL
Autenticación mediante certificados digitales
Acceso a la información de los certificados desde ASP.NET
SEGURIDAD EN SQL SERVER
SEGURIDAD EN SERVICIOS WEB XML DESARROLLADOS CON .NET

Seguridad en .NET

Monografias.com

Seguridad de códigoSeguridad en Windows
Autenticación de usuarios
Logon interactivo
Autenticación en red
Control de acceso basado en objetos
Permite limitar los recursos al usuario autenticado
Limitación con aplicaciones no confiadas por el usuario
Mecanismo Todo – Nada

Monografias.com

Seguridad de códigoSolución .NET
Desarrollada sobre la seguridad Windows
Nunca podremos tener mayores privilegios
Centrada en el código, no en el usuario
Identificación del código por evidencias
Permite distintos niveles de seguridad
Muy granular
Conjunto estándar de permisos ampliable
Fácil de administrar
Distintos niveles de administración

Monografias.com

Seguridad de códigoPermisos
Protección de recursos y operaciones
SecurityPermission
SocketPermission
WebPermission
PrintingPermission
Acceso al interfaz de usuario
UIPermission
Protección de ficheros y directorios
FileIOPermission
FileDialogPermission

Monografias.com

Seguridad de códigoPermisos (II)
Acceso al entorno, registro y metadatos
EnvironmentPermission
RegistryPermission
ReflectionPermission
DNSPermission
EventLogPermission
ServiceControllerPermission

Monografias.com

Seguridad de códigoPermisos (III)
Protección de datos
DirectoryServicesPermission
IsolatedStorageFilePermission
OleDbPermission
SqlClientPermission
MessageQueuePermission
PerformanceCounterPermission
Autenticación
PrincipalPermission

Monografias.com

Seguridad basada en rolesAutenticación y autorización
Autenticación
Proceso que verifica la identidad del usuario
Autorización
Proceso que determina si el usuario puede realizar una operación determinada
Autenticación .NET
Windows
Personalizable
Sólo en ASP.NET
Forms && Passport
Autorización .NET

Monografias.com

Seguridad basada en rolesIdentities, principals
Identity
Encapsula información sobre un usuario
Principal
Representa el contexto de seguridad sobre el que corre la aplicación
Incluye:
Usuario actual
Roles del usuario actual
Tres tipos
Windows
Generic
Custom

Monografias.com

Seguridad basada en rolesAutorización de Principals
If (MyPrincipal.IsInRole(…))
De forma imperativa con PrincipalPermission
p = new PrincipalPermission(“DOMAIN\Usuario”…)p.Demand()
De forma declarativa con PrincipalPermissionAttribute
[PrincipalPermissionAttribute(SecurityAction.Demand, Name = “DOMAIN\Usuario”,…]
Válido para cualquier tipo de Principal
Sin necesidad de cambios

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter